<template>
    <div>
        <div class="list" v-for="(info, index) in list" @click="checkMode(index)">
            <p class="textl">
                {{info.bank_name}}{{info.card | star('bank')}}
            </p>
            <div class="btn-mr" v-show="info.default == 1">默认</div>
            <!--            <svg class="icon choose" :class="{active: info.default === '1'}" aria-hidden="true"-->
            <!--                 @click="checkMode(index)">-->
            <!--                <use xlink:href="#icon-selected"></use>-->
            <!--            </svg>-->
            <svg class="icon choosed" aria-hidden="true"
                 @click.stop="deleteMode(index)">
                <use xlink:href="#icon-close"></use>
            </svg>
        </div>
        <div @click="addBank" class="sure">
            添加银行卡
        </div>
        <confirm
                title="提示"
                :text="text"
                confirmBtnText="删除"
                cancelBtnText="取消"
                ref="confirm"
                @confirm="confirm"
        ></confirm>
    </div>
</template>

<script>
    import API from '../../request/api';
    import confirm from '../../components/common/confirm';

    export default {
        data() {
            return {
                list: [],
                text: '',
                index: ''
            };
        },
        components: {confirm},
        computed: {},
        watch: {
            // 监听具体数据变化，并做相应的处理
        },
        methods: {
            addBank() {
                this.$router.push('bank');
            },
            checkMode(index) {
                //    选择银行卡
                for (let item of this.list) {
                    // 把所有的卡状态变成未选择
                    item.default = '0';
                }
                this.list[index].default = '1';
                this.request.post(API.changeDefault, {id: this.list[index].id}).then((res) => {
                    this.$router.back();
                });
            },
            deleteMode(index) {
                //    删除银行卡bankDele
                this.index = index
                this.text = '您确定删除' + this.list[this.index].bank_name + '银行卡?'
                this.$refs.confirm.show()
            },
            confirm() {
                //    确定删除
                this.request.post(API.bankDele, {
                    id: this.list[this.index].id,
                    action: 1
                }).then((res) => {
                    this.loadBank()
                })
            },
            loadBank() {

                this.request.get(API.bankcard).then(res => {
                    this.list = res.list;
                }, (res) => {
                    console.log(res);
                });
            }
        },
        beforeCreate() {
            // 可以在这加个loading事件，在加载实例时触发
            // 这个阶段实例的data、methods是读不到的
        },
        created() {
            // 初始化数据，如在这结束loading事件，异步ajax请求也适宜在这里调用
            // 实例创建后：这个阶段已经完成了数据观测(data observer)，属性和方法的运算， watch/event 事件回调。
            // mount挂载阶段还没开始，"el" 属性目前不可见，数据并没有在DOM元素上进行渲染
        },
        beforeMount() {
            // 相关的 render 函数首次被调用。
        },
        mounted() {
            this.loadBank()
            // 挂载元素，获取到DOM节点
            // el选项的DOM节点 被新创建的 vm的el 替换，并挂载到实例上去之后调用此生命周期函数。此时实例的数据在DOM节点上进行渲染
        },
        beforeUpdate() {
            // 数据更新时调用，但不进行DOM重新渲染，在数据更新时DOM没渲染前可以在这个生命函数里进行状态处理
        },
        updated() {
            //  如果对数据统一处理，在这里写上相应函数
            // 这个状态下数据更新并且DOM重新渲染，当这个生命周期函数被调用时，组件 DOM 已经更新，所以你现在可以执行依赖于 DOM 的操作。当实例每次进行数据更新时updated都会执行
        },
        beforeDestroy() {
            // 可以做一个确认停止事件的确认框
        },
        destroyed() {
            // Vue 实例销毁后调用。调用后，Vue 实例指示的所有东西都会解绑定，所有的事件监听器会被移除，所有的子实例也会被销毁
        }
    };

</script>

<style scoped lang="stylus" rel="stylesheet/stylus">
    @import '~assets/main.styl'
    .list {
        display flex
        justify-content space-between
        margin-bottom 1px
        background-color grayF
        align-items center
        padding 0 cellPadding
        height vw(45)

        .btn-mr {
            width vw(36)
            height vw(18)
            background main-color
            text-align center
            line-height vw(18)
            word-vw(12px, grayF)
        }

        .choose {
            width vw(20)
            height vw(20)
            fill: #efefef
        }

        .choosed {
            width vw(16)
            height vw(16)
            fill: gray9
        }

        .active {
            fill: main-color
        }

        .textl {
            color main-color
        }
    }

    .sure {
        big-solid()
        margin middleMargin auto
    }
</style>
